package com.example.adminbase.service;

import com.example.adminbase.domain.QueryParam;
import com.example.adminbase.domain.SysDept;
import com.example.adminbase.domain.SysUser;
import com.example.adminbase.domain.UserQueryParam;
import com.github.pagehelper.Page;

import java.util.List;

/**
 * 访问控制服务
 */
public interface AuthorizationService {
    void grantRolePerm(String roleId, List<String> permIds);

    Page<SysUser> findUser(UserQueryParam queryParam);

    void createUser(SysUser user);

    void editUser(SysUser user);

    void delUser(String userId);

    void modifyPassword(String userId, String password);

    void grantUserRoles(String userId, List<String> roleIds);

    Page<SysDept> findDept(QueryParam queryParam);

    void createDept(SysDept sysDept);

    void editDept(SysDept sysDept);

    void delDept(String deptId);



    /**
     * 查找下级部门，当deptId为空时，返回顶级部门。
     * @param deptId 部门ID。
     * @return
     */
    List<SysDept> findSubordinate(String deptId);


}
